// 去重函数
export function uniq(arr, params) {
    const res = new Map();
    return arr.filter(
      (item) => !res.has(item[params]) && res.set(item[params], 1)
    );
  }
  
  /**
   * 根据数组对象的某个字段去重
   * item.name  是[{name:1}] 根据每条数据的name值来去重
   * */
  // export function unique(arr, val) {
  //   const res = new Map();
  //   return arr.filter((item) => !res.has(item[val]) && res.set(item[val], 1));
  // }
  
  // 根据对象数组的某属性删除该项
  export function deleteItemByAttrs(arr, attr, str) {
    for (let index = arr.length - 1; index >= 0; index--) {
      if (arr[index] && arr[index][attr] === str) {
        arr.splice(index, 1);
      }
    }
    return arr;
  }
  
  // 以对象数组的目标 key 值为模板改成自己想要的 key
  export function changeKey(arr, oldKey, newKey) {
    arr.forEach((item) => {
      item[newKey] = item[oldKey];
      return item;
    });
    return arr;
  }
  
  // 深拷贝
  export function deepClone(params) {
    if (!(typeof params === "object" && params !== null)) {
      return params;
    }
    // 根据参数是数组还是对象初始化对象
    const res = Array.isArray(params) ? [] : {};
    for (let key in params) {
      if (Object.prototype.hasOwnProperty.call(params, key)) {
        if (typeof params[key] === "object" && params[key] !== null) {
          res[key] = deepClone(params[key]);
        } else {
          res[key] = params[key];
        }
      }
    }
    return res;
  }
  
  //将 base64 转换为 blob
  export function dataURLtoFile(dataURI, type) {
    let binary = atob(dataURI.split(",")[1]);
    let array = [];
    for (let i = 0; i < binary.length; i++) {
      array.push(binary.charCodeAt(i));
    }
    return new Blob([new Uint8Array(array)], { type: type });
  }
  